<!--
 * @,@Author: ,: 陈佳伟
 * @,@Date: ,: 2020-12-17 21:34:06
 * @LastEditTime: 2021-05-18 11:12:28
 * @LastEditors: 陈佳伟
 * @,@Description: ,: In User Settings Edit
 * @FilePath: /wxapp/src/App.vue
 -->
<script>
import userMixins from "@/mixins/userMixins";

export default {
  data() {
    return {
      channelId: ""
    };
  },
  mixins: [userMixins],
  // 此处globalData为了演示其作用，不是uView框架的一部分
  globalData: {},
  onLaunch() {
    // 1.1.0版本之前关于http拦截器代码，已平滑移动到/common/http.interceptor.js中
    // 注意，需要在/main.js中实例化Vue之后引入如下(详见文档说明)：

    // 获取小程序更新机制兼容
    if (wx.canIUse("getUpdateManager")) {
      const updateManager = wx.getUpdateManager();
      updateManager.onCheckForUpdate(function(res) {
        // 请求完新版本信息的回调
        if (res.hasUpdate) {
          updateManager.onUpdateReady(function() {
            wx.showModal({
              title: "更新提示",
              content: "新版本已经准备好，是否重启应用？",
              success: function(res) {
                if (res.confirm) {
                  // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                  updateManager.applyUpdate();
                }
              }
            });
          });
          updateManager.onUpdateFailed(function() {
            // 新的版本下载失败
            wx.showModal({
              title: "已经有新版本了哟~",
              content: "新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~"
            });
          });
        }
      });
    } else {
      // 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
      wx.showModal({
        title: "提示",
        content:
          "当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。"
      });
    }
    this.playMusic();
    this.checkUserByWechatApp();
  },
  onLoad(options) {
    console.log(options, "app.vue");
  },
  methods: {
    // 校验用户是否注册和获取token
    checkUserByWechatApp() {
      return new Promise(resolve => {
        let that = this;
        wx.login({
          success(res) {
            that.$u.api.WXCHATAPI.getOpenIdApi({
              code: res.code,
            }).then(res => {
              console.log('loginRes', res.data)
              // 将关键字段存储在vuex之中,方便调用
              that.$u.vuex("vuex_userInfo", res.data);
              that.$u.vuex("vuex_wechatInfo.openId", res.data.openid);
              that.$u.vuex("vuex_wechatInfo.sessionKey", res.data.session_key);
              that.$u.vuex("vuex_isLogin", res.status == 200);
      
              // 监测完是否注册用户的消息通知,通知各个订阅过该方法的人
              uni.$emit("userLoginMessage");
              resolve(res);
            });
          }
        });
      });
    },
    playMusic() {
      const innerAudioContext = wx.createInnerAudioContext();

      innerAudioContext.autoplay = true;
      innerAudioContext.src = 'http://cdn.hantieyi.cn/sh2021122701.mp3';
      innerAudioContext.loop = true;
      innerAudioContext.play();
    }
  }
};
</script>

<style lang="scss">
@import "uview-ui/index.scss";
@import "common/demo.scss";
@import "static/common/scss/common.scss";
</style>
